#include<iostream>
using namespace std;

int myRec(int x,int y,int k) {
    if(k == 0) {
        return x == 0 && y == 0;
    }
    if(x < 0 || x > 8 || y < 0 || y > 9) {
        return 0;
    }
    return myRec(x-1,y+2,k-1) + myRec(x-1,y-2,k-1)
        + myRec(x+1,y+2,k-1) + myRec(x+1,y-2,k-1)
        + myRec(x+2,y+1,k-1) + myRec(x+2,y-1,k-1)
        + myRec(x-2,y+1,k-1) + myRec(x-2,y-1,k-1);
}

bool isValidxy(int x,int y) {
    bool res = x >=0 && x <= 8 && y >= 0 && y <= 9;
    return res;
}

int getDpValue(int x,int y,int k,int dp[][11][200]) {
    if(isValidxy(x,y)) {
        return dp[x][y][k];
    } else {
        return 0;
    }
}

int mydp(int x,int y,int k) {
    //cpp 默认全部初始化为0
    int dp[11][11][200];
    dp[0][0][0] = 1;
    for(int ik = 1; ik <= k; ik++) {
        for(int ix = 0; ix < 9; ix++) {
            for(int iy = 0; iy < 10; iy++){
                //每一个方块由下平面的八个方块(如果存在)推导
                dp[ix][iy][ik] =   getDpValue(ix-1,iy+2,ik-1,dp) + getDpValue(ix-1,iy-2,ik-1,dp)
                                + getDpValue(ix+1,iy+2,ik-1,dp) + getDpValue(ix+1,iy-2,ik-1,dp)
                                + getDpValue(ix+2,iy+1,ik-1,dp) + getDpValue(ix+2,iy-1,ik-1,dp)
                                + getDpValue(ix-2,iy+1,ik-1,dp) + getDpValue(ix-2,iy-1,ik-1,dp);
            }
        }
    }
    // cout << "end:" << dp[0][0][0] << endl;
    return dp[x][y][k];
}

int main() {
    int x,y,k;
    cin >> x >> y >> k;
    // int ret = myRec(x,y,k);
    int ret = mydp(x,y,k);
    cout << ret << endl;
    return 0;
}